Web farms are now becoming very popular. A key concept behind the web farm is the notion that a number of different websites share pooled resources. They typically share a common front-end dispatcher to perform load control and distribute customer requests. They share the multiple web servers themselves. And they also share back-end bandwidth to return request results to the customers. The hardware and software is typically owned, operated and maintained by a single service provider, or content host. Examples of companies currently providing or planning to provide this service include AT&T, Exodus, Intel, IBM, Qwest, Verio, and Worldcom.
A major performance challenge for web farms is to balance the load on the servers effectively, so as to minimize the average response time achieved on the system. Overutilization of servers can cause excessive delays of customer requests. On the other hand, underutilization of servers is wasteful. Minimizing average response time will have the dual effect of maximizing the throughput the web farm can achieve. This means that the load control procedure in the front-end dispatcher can be made more permissive, rejecting fewer requests.
One of the main motivations for web farms is the efficiencies that arise because of the pooled resources. Each website is assigned to a set of one or more servers. However, the prior art has assumed that the website assignments have been partitioned among the servers: That is, no server handles traffic from more than one website.
The rationale behind creating sets containing multiple servers is feasibility: The distribution of customer requests amongst the various sites will typically be highly non-uniform. Some sites will likely be vastly more popular than others, and the popularity of a hot website will generally be great enough that assigning it to a single server would overload that server. Thus, in order to achieve acceptable performance it will be necessary to assign some sites to multiple servers.
It is known to implement load-balancing algorithms for the partitioned case, but such partitioning of the servers leads to less flexibility and therefore less optimally balanced website load balancing.